﻿using System;
using Audit.Core;
using Serilog;
using Serilog.Events;

namespace Shared.Service.Logging.Serilog
{
    public interface ISerilogConfigurator
    {
        ISerilogConfigurator Logger(Func<AuditEvent, ILogger> loggerBuilder);
        ISerilogConfigurator Logger(ILogger logger);
        ISerilogConfigurator LogLevel(Func<AuditEvent, LogEventLevel> logLevelBuilder);
        ISerilogConfigurator LogLevel(LogEventLevel logLevel);
        void Message(Func<AuditEvent, object, object> messageBuilder);
        void Message(Func<AuditEvent, object> messageBuilder);
    }
}
